UDACITY CAPSTONE PROJECT- DOG BREED CLASSIFICATION

LOADING DATASETS

In [4]:
from sklearn.datasets import load_files       
from keras.utils import np_utils
import numpy as np
from glob import glob

def load_dataset(path):
    data = load_files(path)
    #print(data['filenames'])
    dog_images = np.array(data['filenames'])
    dog_labels = np_utils.to_categorical(np.array(data['target']), 133)
    return dog_images, dog_labels

train_images, train_labels = load_dataset('dogImages/train')
valid_images, valid_labels = load_dataset('dogImages/valid')
test_images, test_labels = load_dataset('dogImages/test')

ANALYZING THE DATA

In [2]:
print('There are %s total dog images.\n' % len(np.hstack([train_images, valid_images, test_images])))
print('There are %d training dog images.' % len(train_images))
print('There are %d validation dog images.' % len(valid_images))
print('There are %d test dog images.'% len(test_images))
There are 8351 total dog images.

There are 6680 training dog images.
There are 835 validation dog images.
There are 836 test dog images.
In [3]:
print(len(train_labels))

import cv2                
import matplotlib.pyplot as plt                        
%matplotlib inline      
 

img = cv2.imread(train_images[1])

height,width,channels=img.shape
print(height,width,channels)
plt.imshow(img)
plt.show()
6680
332 500 3
In [4]:
height_list = []
width_list = []
for i in train_images:
    img=cv2.imread(i)
    height,width,channels=img.shape
    height_list.append(height)
    width_list.append(width)
    
In [5]:
plt.hist([height_list, width_list], color=['blue','grey'], label=['height', 'width'])

plt.ylabel('nb of images')
plt.xlabel('pixel')
plt.title('Image dimensions')

print("Average height : %f" % np.mean(height_list))
print("Average width : %f" % np.mean(width_list))
Average height : 532.157485
Average width : 571.382335
In [7]:
dog_names = [item[20:-1] for item in sorted(glob("dogImages/train/*/"))]
print("The breeds are")
print()
print(dog_names)
print(len(dog_names))
The breeds are

['Affenpinscher', 'Afghan_hound', 'Airedale_terrier', 'Akita', 'Alaskan_malamute', 'American_eskimo_dog', 'American_foxhound', 'American_staffordshire_terrier', 'American_water_spaniel', 'Anatolian_shepherd_dog', 'Australian_cattle_dog', 'Australian_shepherd', 'Australian_terrier', 'Basenji', 'Basset_hound', 'Beagle', 'Bearded_collie', 'Beauceron', 'Bedlington_terrier', 'Belgian_malinois', 'Belgian_sheepdog', 'Belgian_tervuren', 'Bernese_mountain_dog', 'Bichon_frise', 'Black_and_tan_coonhound', 'Black_russian_terrier', 'Bloodhound', 'Bluetick_coonhound', 'Border_collie', 'Border_terrier', 'Borzoi', 'Boston_terrier', 'Bouvier_des_flandres', 'Boxer', 'Boykin_spaniel', 'Briard', 'Brittany', 'Brussels_griffon', 'Bull_terrier', 'Bulldog', 'Bullmastiff', 'Cairn_terrier', 'Canaan_dog', 'Cane_corso', 'Cardigan_welsh_corgi', 'Cavalier_king_charles_spaniel', 'Chesapeake_bay_retriever', 'Chihuahua', 'Chinese_crested', 'Chinese_shar-pei', 'Chow_chow', 'Clumber_spaniel', 'Cocker_spaniel', 'Collie', 'Curly-coated_retriever', 'Dachshund', 'Dalmatian', 'Dandie_dinmont_terrier', 'Doberman_pinscher', 'Dogue_de_bordeaux', 'English_cocker_spaniel', 'English_setter', 'English_springer_spaniel', 'English_toy_spaniel', 'Entlebucher_mountain_dog', 'Field_spaniel', 'Finnish_spitz', 'Flat-coated_retriever', 'French_bulldog', 'German_pinscher', 'German_shepherd_dog', 'German_shorthaired_pointer', 'German_wirehaired_pointer', 'Giant_schnauzer', 'Glen_of_imaal_terrier', 'Golden_retriever', 'Gordon_setter', 'Great_dane', 'Great_pyrenees', 'Greater_swiss_mountain_dog', 'Greyhound', 'Havanese', 'Ibizan_hound', 'Icelandic_sheepdog', 'Irish_red_and_white_setter', 'Irish_setter', 'Irish_terrier', 'Irish_water_spaniel', 'Irish_wolfhound', 'Italian_greyhound', 'Japanese_chin', 'Keeshond', 'Kerry_blue_terrier', 'Komondor', 'Kuvasz', 'Labrador_retriever', 'Lakeland_terrier', 'Leonberger', 'Lhasa_apso', 'Lowchen', 'Maltese', 'Manchester_terrier', 'Mastiff', 'Miniature_schnauzer', 'Neapolitan_mastiff', 'Newfoundland', 'Norfolk_terrier', 'Norwegian_buhund', 'Norwegian_elkhound', 'Norwegian_lundehund', 'Norwich_terrier', 'Nova_scotia_duck_tolling_retriever', 'Old_english_sheepdog', 'Otterhound', 'Papillon', 'Parson_russell_terrier', 'Pekingese', 'Pembroke_welsh_corgi', 'Petit_basset_griffon_vendeen', 'Pharaoh_hound', 'Plott', 'Pointer', 'Pomeranian', 'Poodle', 'Portuguese_water_dog', 'Saint_bernard', 'Silky_terrier', 'Smooth_fox_terrier', 'Tibetan_mastiff', 'Welsh_springer_spaniel', 'Wirehaired_pointing_griffon', 'Xoloitzcuintli', 'Yorkshire_terrier']
133
In [7]:
import seaborn as sns
count = []
number = 0;
for item in sorted(glob("dogImages/train/*/")):
    
    for i in glob(item+'*'):
        number=number+1
    count.append(number)
    number = 0
print(count)
        

 

 
[64, 58, 52, 63, 77, 64, 50, 66, 34, 50, 66, 66, 46, 69, 73, 59, 62, 50, 48, 62, 64, 47, 65, 62, 37, 41, 64, 35, 74, 52, 56, 65, 45, 64, 53, 65, 50, 57, 69, 53, 69, 63, 50, 64, 53, 67, 54, 54, 50, 50, 62, 49, 47, 57, 50, 65, 71, 50, 47, 60, 61, 53, 53, 39, 42, 33, 34, 63, 51, 47, 62, 48, 42, 41, 44, 64, 43, 40, 59, 46, 56, 61, 46, 50, 37, 53, 66, 51, 53, 58, 57, 44, 35, 44, 49, 43, 50, 46, 42, 34, 48, 29, 58, 42, 31, 50, 46, 26, 45, 33, 44, 54, 39, 35, 63, 30, 48, 53, 31, 39, 28, 32, 44, 50, 34, 30, 41, 30, 48, 44, 30, 26, 30]
In [8]:
sns.set(color_codes=True)
plt.rcParams['figure.figsize'] = (60.0, 30.0)
sns.barplot(dog_names, count, color="lightgreen")
plt.xlabel("dog_names")
plt.ylabel("count")
Out[8]:
Text(0,0.5,'count')
In [9]:
count = 0

for item in sorted(glob("dogImages/train/*/")):
    
    for i in glob(item+'*'):
        img = img=cv2.imread(i)
        plt.rcParams['figure.figsize'] = (20.0, 30.0)
        #plt.imshow(img)
        #plt.show()
        count=count+1
        if count == 1:
            break
    count = 0
            

PRE-PROCESSING THE DATA

In [2]:
from keras.preprocessing import image                  


def tensor_4d(img_path):
    img = image.load_img(img_path, target_size=(224, 224))
    x = image.img_to_array(img)
    return np.expand_dims(x, axis=0)

USING PRE-TRAINED MODELS FOR PREDICTION

1) VGG 16
In [1]:
from keras.applications.vgg16 import VGG16
from keras.applications.vgg16 import preprocess_input, decode_predictions
import pickle


pickle_in = open("data.pkl","rb")
dog_breed = pickle.load(pickle_in)
model = VGG16(weights='imagenet')

def prediction_labels(img_path):
    img = preprocess_input(tensor_4d(img_path))
    output = model.predict(img)
    #print(output
    return dog_breed[np.argmax(output)]
    
Using TensorFlow backend.
In [10]:
training_set = train_images[:200]
import numpy as np
num_dog_faces = 0
i = 0
answer = []
k = 0
for face in training_set:
    answer = prediction_labels(face)
    
    
    for j in train_labels[i]:
        k = k+1
        if j == 1:
            break;
    print(i)
    print(answer)
    print(dog_names[k-1])
    k=0
    i= i+1
   
0
kuvasz
Kuvasz
1
dalmatian, coach dog, carriage dog
Dalmatian
2
Irish water spaniel
Irish_water_spaniel
3
Staffordshire bullterrier, Staffordshire bull terrier
American_staffordshire_terrier
4
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
5
Welsh springer spaniel
English_springer_spaniel
6
collie
Collie
7
wire-haired fox terrier
Petit_basset_griffon_vendeen
8
Irish water spaniel
American_water_spaniel
9
Italian greyhound
Greyhound
10
Border collie
Australian_shepherd
11
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
12
beagle
Basset_hound
13
cocker spaniel, English cocker spaniel, cocker
Cocker_spaniel
14
Lhasa, Lhasa apso
Lhasa_apso
15
Sussex spaniel
American_water_spaniel
16
flat-coated retriever
Dachshund
17
Maltese dog, Maltese terrier, Maltese
Havanese
18
Pekinese, Pekingese, Peke
Pekingese
19
chow, chow chow
Chow_chow
20
Lakeland terrier
Lakeland_terrier
21
dalmatian, coach dog, carriage dog
Dalmatian
22
Labrador retriever
Labrador_retriever
23
Newfoundland, Newfoundland dog
Newfoundland
24
Pekinese, Pekingese, Peke
Pekingese
25
Irish terrier
Irish_terrier
26
Pembroke, Pembroke Welsh corgi
Finnish_spitz
27
German shepherd, German shepherd dog, German police dog, alsatian
Alaskan_malamute
28
Bernese mountain dog
Bernese_mountain_dog
29
Newfoundland, Newfoundland dog
Newfoundland
30
Ibizan hound, Ibizan Podenco
Bull_terrier
31
whippet
Italian_greyhound
32
Lakeland terrier
Lakeland_terrier
33
Great Dane
Australian_shepherd
34
Irish setter, red setter
Irish_setter
35
miniature pinscher
Manchester_terrier
36
Old English sheepdog, bobtail
Petit_basset_griffon_vendeen
37
dalmatian, coach dog, carriage dog
Dalmatian
38
basset, basset hound
Basset_hound
39
English setter
English_setter
40
Afghan hound, Afghan
Black_russian_terrier
41
Rottweiler
Beauceron
42
Tibetan terrier, chrysanthemum dog
Bearded_collie
43
Staffordshire bullterrier, Staffordshire bull terrier
Plott
44
Chesapeake Bay retriever
Chesapeake_bay_retriever
45
golden retriever
Golden_retriever
46
basenji
Bull_terrier
47
Shetland sheepdog, Shetland sheep dog, Shetland
Collie
48
bloodhound, sleuthhound
Bloodhound
49
Pembroke, Pembroke Welsh corgi
Norwegian_lundehund
50
Tibetan terrier, chrysanthemum dog
Havanese
51
Cardigan, Cardigan Welsh corgi
Cardigan_welsh_corgi
52
pug, pug-dog
Bulldog
53
Brittany spaniel
Irish_red_and_white_setter
54
Samoyed, Samoyede
American_eskimo_dog
55
Bedlington terrier
Bedlington_terrier
56
malinois
Anatolian_shepherd_dog
57
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
58
Ibizan hound, Ibizan Podenco
Pharaoh_hound
59
Blenheim spaniel
Cavalier_king_charles_spaniel
60
Tibetan terrier, chrysanthemum dog
Bearded_collie
61
English foxhound
Brittany
62
kelpie
Australian_cattle_dog
63
Maltese dog, Maltese terrier, Maltese
Bichon_frise
64
Great Dane
Great_dane
65
Tibetan terrier, chrysanthemum dog
Bearded_collie
66
bull mastiff
Neapolitan_mastiff
67
Great Pyrenees
Great_pyrenees
68
Gordon setter
English_toy_spaniel
69
Italian greyhound
Italian_greyhound
70
Mexican hairless
Xoloitzcuintli
71
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
72
Australian terrier
Australian_terrier
73
curly-coated retriever
Curly-coated_retriever
74
Kerry blue terrier
Kerry_blue_terrier
75
Irish water spaniel
Irish_water_spaniel
76
bull mastiff
Mastiff
77
otterhound, otter hound
Otterhound
78
basenji
Icelandic_sheepdog
79
Newfoundland, Newfoundland dog
Newfoundland
80
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
81
Irish terrier
Irish_terrier
82
Saluki, gazelle hound
Greyhound
83
Great Dane
Mastiff
84
kuvasz
Kuvasz
85
Boston bull, Boston terrier
Boston_terrier
86
whippet
Italian_greyhound
87
Afghan hound, Afghan
Borzoi
88
German short-haired pointer
Pointer
89
Irish setter, red setter
Dachshund
90
dingo, warrigal, warragal, Canis dingo
Finnish_spitz
91
Gordon setter
Gordon_setter
92
boxer
Boxer
93
Afghan hound, Afghan
Afghan_hound
94
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
95
kuvasz
Kuvasz
96
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
Cane_corso
97
chow, chow chow
Chow_chow
98
Labrador retriever
Giant_schnauzer
99
kelpie
Australian_cattle_dog
100
Pembroke, Pembroke Welsh corgi
Cardigan_welsh_corgi
101
Chesapeake Bay retriever
Chinese_shar-pei
102
malamute, malemute, Alaskan malamute
Alaskan_malamute
103
French bulldog
French_bulldog
104
bloodhound, sleuthhound
Bloodhound
105
briard
Briard
106
flat-coated retriever
Boykin_spaniel
107
Norfolk terrier
Norfolk_terrier
108
basenji
Basenji
109
basenji
Norwegian_lundehund
110
Chesapeake Bay retriever
Chesapeake_bay_retriever
111
Bouvier des Flandres, Bouviers des Flandres
Glen_of_imaal_terrier
112
Doberman, Doberman pinscher
Dachshund
113
Boston bull, Boston terrier
Boston_terrier
114
Australian terrier
Silky_terrier
115
Tibetan terrier, chrysanthemum dog
Lowchen
116
Bedlington terrier
Bedlington_terrier
117
Ibizan hound, Ibizan Podenco
Ibizan_hound
118
English setter
English_setter
119
black-and-tan coonhound
Black_and_tan_coonhound
120
Japanese spaniel
Japanese_chin
121
boxer
Boxer
122
Rhodesian ridgeback
Dogue_de_bordeaux
123
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
124
Norwegian elkhound, elkhound
Norwegian_elkhound
125
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
126
Chihuahua
Chihuahua
127
dalmatian, coach dog, carriage dog
Dalmatian
128
EntleBucher
Entlebucher_mountain_dog
129
Maltese dog, Maltese terrier, Maltese
Havanese
130
whippet
Greyhound
131
giant schnauzer
Giant_schnauzer
132
basset, basset hound
Basset_hound
133
Pembroke, Pembroke Welsh corgi
Icelandic_sheepdog
134
Chesapeake Bay retriever
Chesapeake_bay_retriever
135
Italian greyhound
Italian_greyhound
136
Airedale, Airedale terrier
Airedale_terrier
137
malinois
Belgian_malinois
138
Welsh springer spaniel
Irish_red_and_white_setter
139
Kerry blue terrier
Portuguese_water_dog
140
Airedale, Airedale terrier
Airedale_terrier
141
Bedlington terrier
Bedlington_terrier
142
cairn, cairn terrier
Cairn_terrier
143
golden retriever
Golden_retriever
144
kelpie
Beauceron
145
Great Dane
Bull_terrier
146
white wolf, Arctic wolf, Canis lupus tundrarum
Canaan_dog
147
bull mastiff
Chinese_shar-pei
148
Irish terrier
Irish_terrier
149
Great Dane
Pointer
150
Irish wolfhound
Irish_wolfhound
151
bull mastiff
Bullmastiff
152
Lhasa, Lhasa apso
Lhasa_apso
153
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
154
cocker spaniel, English cocker spaniel, cocker
English_cocker_spaniel
155
Appenzeller
Greater_swiss_mountain_dog
156
borzoi, Russian wolfhound
Borzoi
157
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
158
curly-coated retriever
Curly-coated_retriever
159
Old English sheepdog, bobtail
Old_english_sheepdog
160
Kerry blue terrier
Kerry_blue_terrier
161
boxer
Bulldog
162
Siberian husky
Akita
163
chow, chow chow
Chow_chow
164
Chesapeake Bay retriever
Chesapeake_bay_retriever
165
Lakeland terrier
Lakeland_terrier
166
komondor
Komondor
167
Cardigan, Cardigan Welsh corgi
Cardigan_welsh_corgi
168
Sussex spaniel
American_water_spaniel
169
bull mastiff
Bullmastiff
170
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
171
cocker spaniel, English cocker spaniel, cocker
Cocker_spaniel
172
Gordon setter
English_toy_spaniel
173
giant schnauzer
Black_russian_terrier
174
English springer, English springer spaniel
English_springer_spaniel
175
Labrador retriever
Canaan_dog
176
chow, chow chow
Chow_chow
177
bloodhound, sleuthhound
Bloodhound
178
Australian terrier
Silky_terrier
179
briard
Briard
180
Norwegian elkhound, elkhound
Norwegian_elkhound
181
Ibizan hound, Ibizan Podenco
Canaan_dog
182
Norwegian elkhound, elkhound
Norwegian_elkhound
183
Bouvier des Flandres, Bouviers des Flandres
Glen_of_imaal_terrier
184
Norwich terrier
Yorkshire_terrier
185
giant schnauzer
German_wirehaired_pointer
186
briard
Briard
187
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
188
flat-coated retriever
Flat-coated_retriever
189
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
190
bull mastiff
Neapolitan_mastiff
191
bull mastiff
Bulldog
192
basset, basset hound
Basset_hound
193
Great Pyrenees
Great_pyrenees
194
flat-coated retriever
Flat-coated_retriever
195
Chesapeake Bay retriever
Chinese_shar-pei
196
Brittany spaniel
Brittany
197
Ibizan hound, Ibizan Podenco
Pharaoh_hound
198
malinois
Belgian_malinois
199
Irish terrier
Irish_terrier
In [12]:
training_set = test_images[:200]
import numpy as np
i = 0
answer = []
k = 0
for face in training_set:
    answer = prediction_labels(face)

    
    for j in test_labels[i]:
        k = k+1
        if j == 1:
            break;
    print(i)
    print(answer)
    print(dog_names[k-1])
    k=0
    i= i+1
0
dalmatian, coach dog, carriage dog
Dalmatian
1
Doberman, Doberman pinscher
Doberman_pinscher
2
papillon
Papillon
3
Bedlington terrier
Bedlington_terrier
4
flat-coated retriever
Flat-coated_retriever
5
Scotch terrier, Scottish terrier, Scottie
Belgian_sheepdog
6
Ibizan hound, Ibizan Podenco
Canaan_dog
7
clumber, clumber spaniel
Clumber_spaniel
8
Kerry blue terrier
Lakeland_terrier
9
chow, chow chow
Chow_chow
10
Afghan hound, Afghan
Afghan_hound
11
Bedlington terrier
Bedlington_terrier
12
West Highland white terrier
Glen_of_imaal_terrier
13
Yorkshire terrier
Yorkshire_terrier
14
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
15
Staffordshire bullterrier, Staffordshire bull terrier
Basenji
16
Pomeranian
Pomeranian
17
Boston bull, Boston terrier
Boston_terrier
18
Japanese spaniel
Japanese_chin
19
Norwich terrier
Cairn_terrier
20
Leonberg
Leonberger
21
French bulldog
French_bulldog
22
otterhound, otter hound
Dachshund
23
kuvasz
Kuvasz
24
briard
Briard
25
standard poodle
Portuguese_water_dog
26
Bedlington terrier
Bedlington_terrier
27
Bedlington terrier
Bedlington_terrier
28
keeshond
Keeshond
29
Old English sheepdog, bobtail
Old_english_sheepdog
30
Eskimo dog, husky
Alaskan_malamute
31
Norwegian elkhound, elkhound
Norwegian_elkhound
32
Border collie
Border_collie
33
Bernese mountain dog
Bernese_mountain_dog
34
Newfoundland, Newfoundland dog
Newfoundland
35
Greater Swiss Mountain dog
Greater_swiss_mountain_dog
36
flat-coated retriever
Boykin_spaniel
37
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
Bull_terrier
38
dingo, warrigal, warragal, Canis dingo
Akita
39
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
40
Doberman, Doberman pinscher
Greyhound
41
Welsh springer spaniel
Welsh_springer_spaniel
42
cairn, cairn terrier
Cairn_terrier
43
bloodhound, sleuthhound
Bloodhound
44
cocker spaniel, English cocker spaniel, cocker
English_cocker_spaniel
45
Afghan hound, Afghan
Afghan_hound
46
Maltese dog, Maltese terrier, Maltese
Maltese
47
Italian greyhound
Italian_greyhound
48
Irish water spaniel
Irish_water_spaniel
49
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
50
Bouvier des Flandres, Bouviers des Flandres
Bouvier_des_flandres
51
basenji
Finnish_spitz
52
giant schnauzer
Bouvier_des_flandres
53
basenji
Basenji
54
flat-coated retriever
Boykin_spaniel
55
Old English sheepdog, bobtail
Petit_basset_griffon_vendeen
56
Doberman, Doberman pinscher
Manchester_terrier
57
miniature schnauzer
Miniature_schnauzer
58
Border terrier
Border_terrier
59
Airedale, Airedale terrier
Lakeland_terrier
60
dingo, warrigal, warragal, Canis dingo
Australian_cattle_dog
61
pug, pug-dog
Mastiff
62
boxer
Boxer
63
Labrador retriever
Labrador_retriever
64
Tibetan terrier, chrysanthemum dog
Lowchen
65
bluetick
Bluetick_coonhound
66
Yorkshire terrier
Yorkshire_terrier
67
Weimaraner
Pointer
68
Great Dane
Canaan_dog
69
Brabancon griffon
Brussels_griffon
70
Irish water spaniel
Irish_water_spaniel
71
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
72
Maltese dog, Maltese terrier, Maltese
Maltese
73
Doberman, Doberman pinscher
Doberman_pinscher
74
Norwegian elkhound, elkhound
German_shepherd_dog
75
Gordon setter
English_cocker_spaniel
76
Border terrier
Border_terrier
77
standard poodle
Poodle
78
Brabancon griffon
Brussels_griffon
79
Labrador retriever
Flat-coated_retriever
80
borzoi, Russian wolfhound
Smooth_fox_terrier
81
bull mastiff
Mastiff
82
French bulldog
Bulldog
83
Dandie Dinmont, Dandie Dinmont terrier
Havanese
84
Kerry blue terrier
Kerry_blue_terrier
85
Irish terrier
Irish_terrier
86
Greater Swiss Mountain dog
Entlebucher_mountain_dog
87
Blenheim spaniel
Cavalier_king_charles_spaniel
88
Pomeranian
American_eskimo_dog
89
Brittany spaniel
Brittany
90
komondor
Komondor
91
basset, basset hound
Basset_hound
92
otterhound, otter hound
Wirehaired_pointing_griffon
93
miniature pinscher
German_pinscher
94
groenendael
Belgian_tervuren
95
malinois
Belgian_malinois
96
Tibetan mastiff
Tibetan_mastiff
97
Doberman, Doberman pinscher
German_pinscher
98
Chesapeake Bay retriever
Boykin_spaniel
99
keeshond
Norwegian_elkhound
100
Staffordshire bullterrier, Staffordshire bull terrier
American_staffordshire_terrier
101
kelpie
Australian_cattle_dog
102
Doberman, Doberman pinscher
Doberman_pinscher
103
Maltese dog, Maltese terrier, Maltese
Bichon_frise
104
German short-haired pointer
German_shorthaired_pointer
105
papillon
Papillon
106
clumber, clumber spaniel
Clumber_spaniel
107
dalmatian, coach dog, carriage dog
Dalmatian
108
Pomeranian
Icelandic_sheepdog
109
Irish terrier
Irish_terrier
110
Tibetan terrier, chrysanthemum dog
Lowchen
111
English springer, English springer spaniel
English_cocker_spaniel
112
bull mastiff
Cane_corso
113
borzoi, Russian wolfhound
Australian_shepherd
114
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
115
kelpie
Australian_cattle_dog
116
wire-haired fox terrier
Petit_basset_griffon_vendeen
117
Ibizan hound, Ibizan Podenco
Ibizan_hound
118
bluetick
Bluetick_coonhound
119
Staffordshire bullterrier, Staffordshire bull terrier
Cane_corso
120
redbone
Golden_retriever
121
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
122
Mexican hairless
Xoloitzcuintli
123
Tibetan terrier, chrysanthemum dog
Affenpinscher
124
Brittany spaniel
Brittany
125
Pembroke, Pembroke Welsh corgi
Norwegian_lundehund
126
whippet
Greyhound
127
kuvasz
Kuvasz
128
Great Dane
Cane_corso
129
groenendael
Belgian_sheepdog
130
Chihuahua
Chihuahua
131
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
132
bloodhound, sleuthhound
Bloodhound
133
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
134
miniature pinscher
German_pinscher
135
collie
Collie
136
Great Dane
Belgian_malinois
137
black-and-tan coonhound
Dachshund
138
Shetland sheepdog, Shetland sheep dog, Shetland
Collie
139
bull mastiff
Chinese_shar-pei
140
Greater Swiss Mountain dog
Entlebucher_mountain_dog
141
Irish wolfhound
Glen_of_imaal_terrier
142
Chihuahua
Chihuahua
143
miniature pinscher
Dachshund
144
Siberian husky
Alaskan_malamute
145
Airedale, Airedale terrier
Airedale_terrier
146
chow, chow chow
Finnish_spitz
147
Great Dane
Cane_corso
148
standard poodle
Irish_water_spaniel
149
Walker hound, Walker foxhound
American_foxhound
150
Irish water spaniel
Portuguese_water_dog
151
Maltese dog, Maltese terrier, Maltese
Maltese
152
beagle
Beagle
153
Ibizan hound, Ibizan Podenco
Ibizan_hound
154
keeshond
Keeshond
155
Afghan hound, Afghan
Afghan_hound
156
flat-coated retriever
Flat-coated_retriever
157
Saint Bernard, St Bernard
Anatolian_shepherd_dog
158
Irish setter, red setter
Irish_setter
159
Old English sheepdog, bobtail
Old_english_sheepdog
160
Leonberg
Leonberger
161
Border collie
Border_collie
162
papillon
Pomeranian
163
Irish water spaniel
Irish_water_spaniel
164
giant schnauzer
Boykin_spaniel
165
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
166
German short-haired pointer
Wirehaired_pointing_griffon
167
Leonberg
Leonberger
168
Italian greyhound
Parson_russell_terrier
169
Japanese spaniel
Japanese_chin
170
German short-haired pointer
German_shorthaired_pointer
171
Chesapeake Bay retriever
Plott
172
Cardigan, Cardigan Welsh corgi
Pembroke_welsh_corgi
173
bull mastiff
Dogue_de_bordeaux
174
briard
Briard
175
English springer, English springer spaniel
German_wirehaired_pointer
176
Ibizan hound, Ibizan Podenco
Pharaoh_hound
177
briard
Briard
178
Chihuahua
Nova_scotia_duck_tolling_retriever
179
Chesapeake Bay retriever
English_springer_spaniel
180
Gordon setter
Cavalier_king_charles_spaniel
181
Maltese dog, Maltese terrier, Maltese
Maltese
182
Labrador retriever
Anatolian_shepherd_dog
183
Walker hound, Walker foxhound
American_foxhound
184
Chesapeake Bay retriever
Chinese_shar-pei
185
English springer, English springer spaniel
English_springer_spaniel
186
Blenheim spaniel
Cavalier_king_charles_spaniel
187
beagle
Beagle
188
malamute, malemute, Alaskan malamute
Alaskan_malamute
189
Boston bull, Boston terrier
Boston_terrier
190
English foxhound
American_foxhound
191
Boston bull, Boston terrier
Boston_terrier
192
Tibetan mastiff
Chow_chow
193
standard poodle
Poodle
194
borzoi, Russian wolfhound
Borzoi
195
cocker spaniel, English cocker spaniel, cocker
Cavalier_king_charles_spaniel
196
cocker spaniel, English cocker spaniel, cocker
English_cocker_spaniel
197
kelpie
Australian_cattle_dog
198
Irish water spaniel
American_water_spaniel
199
Leonberg
Leonberger
2) RESNET 50
In [16]:
from keras.applications.resnet50 import ResNet50
from keras.applications.resnet50 import preprocess_input, decode_predictions

model = ResNet50(weights='imagenet')

def prediction_labels(img_path):
    img = preprocess_input(tensor_4d(img_path))
    output = model.predict(img)
    #print(output
    return dog_breed[np.argmax(output)]
In [13]:
training_set = train_images[:200]
import numpy as np
i = 0
answer = []
k = 0
for face in training_set:
    answer = prediction_labels(face)
    
    
    for j in train_labels[i]:
        k = k+1
        if j == 1:
            break;
    print(i)
    print(answer)
    print(dog_names[k-1])
    k=0
    i= i+1
   
0
kuvasz
Kuvasz
1
dalmatian, coach dog, carriage dog
Dalmatian
2
Irish water spaniel
Irish_water_spaniel
3
Staffordshire bullterrier, Staffordshire bull terrier
American_staffordshire_terrier
4
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
5
Welsh springer spaniel
English_springer_spaniel
6
collie
Collie
7
wire-haired fox terrier
Petit_basset_griffon_vendeen
8
Irish water spaniel
American_water_spaniel
9
Italian greyhound
Greyhound
10
Border collie
Australian_shepherd
11
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
12
beagle
Basset_hound
13
cocker spaniel, English cocker spaniel, cocker
Cocker_spaniel
14
Lhasa, Lhasa apso
Lhasa_apso
15
Sussex spaniel
American_water_spaniel
16
flat-coated retriever
Dachshund
17
Maltese dog, Maltese terrier, Maltese
Havanese
18
Pekinese, Pekingese, Peke
Pekingese
19
chow, chow chow
Chow_chow
20
Lakeland terrier
Lakeland_terrier
21
dalmatian, coach dog, carriage dog
Dalmatian
22
Labrador retriever
Labrador_retriever
23
Newfoundland, Newfoundland dog
Newfoundland
24
Pekinese, Pekingese, Peke
Pekingese
25
Irish terrier
Irish_terrier
26
Pembroke, Pembroke Welsh corgi
Finnish_spitz
27
German shepherd, German shepherd dog, German police dog, alsatian
Alaskan_malamute
28
Bernese mountain dog
Bernese_mountain_dog
29
Newfoundland, Newfoundland dog
Newfoundland
30
Ibizan hound, Ibizan Podenco
Bull_terrier
31
whippet
Italian_greyhound
32
Lakeland terrier
Lakeland_terrier
33
Great Dane
Australian_shepherd
34
Irish setter, red setter
Irish_setter
35
miniature pinscher
Manchester_terrier
36
Old English sheepdog, bobtail
Petit_basset_griffon_vendeen
37
dalmatian, coach dog, carriage dog
Dalmatian
38
basset, basset hound
Basset_hound
39
English setter
English_setter
40
Afghan hound, Afghan
Black_russian_terrier
41
Rottweiler
Beauceron
42
Tibetan terrier, chrysanthemum dog
Bearded_collie
43
Staffordshire bullterrier, Staffordshire bull terrier
Plott
44
Chesapeake Bay retriever
Chesapeake_bay_retriever
45
golden retriever
Golden_retriever
46
basenji
Bull_terrier
47
Shetland sheepdog, Shetland sheep dog, Shetland
Collie
48
bloodhound, sleuthhound
Bloodhound
49
Pembroke, Pembroke Welsh corgi
Norwegian_lundehund
50
Tibetan terrier, chrysanthemum dog
Havanese
51
Cardigan, Cardigan Welsh corgi
Cardigan_welsh_corgi
52
pug, pug-dog
Bulldog
53
Brittany spaniel
Irish_red_and_white_setter
54
Samoyed, Samoyede
American_eskimo_dog
55
Bedlington terrier
Bedlington_terrier
56
malinois
Anatolian_shepherd_dog
57
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
58
Ibizan hound, Ibizan Podenco
Pharaoh_hound
59
Blenheim spaniel
Cavalier_king_charles_spaniel
60
Tibetan terrier, chrysanthemum dog
Bearded_collie
61
English foxhound
Brittany
62
kelpie
Australian_cattle_dog
63
Maltese dog, Maltese terrier, Maltese
Bichon_frise
64
Great Dane
Great_dane
65
Tibetan terrier, chrysanthemum dog
Bearded_collie
66
bull mastiff
Neapolitan_mastiff
67
Great Pyrenees
Great_pyrenees
68
Gordon setter
English_toy_spaniel
69
Italian greyhound
Italian_greyhound
70
Mexican hairless
Xoloitzcuintli
71
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
72
Australian terrier
Australian_terrier
73
curly-coated retriever
Curly-coated_retriever
74
Kerry blue terrier
Kerry_blue_terrier
75
Irish water spaniel
Irish_water_spaniel
76
bull mastiff
Mastiff
77
otterhound, otter hound
Otterhound
78
basenji
Icelandic_sheepdog
79
Newfoundland, Newfoundland dog
Newfoundland
80
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
81
Irish terrier
Irish_terrier
82
Saluki, gazelle hound
Greyhound
83
Great Dane
Mastiff
84
kuvasz
Kuvasz
85
Boston bull, Boston terrier
Boston_terrier
86
whippet
Italian_greyhound
87
Afghan hound, Afghan
Borzoi
88
German short-haired pointer
Pointer
89
Irish setter, red setter
Dachshund
90
dingo, warrigal, warragal, Canis dingo
Finnish_spitz
91
Gordon setter
Gordon_setter
92
boxer
Boxer
93
Afghan hound, Afghan
Afghan_hound
94
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
95
kuvasz
Kuvasz
96
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
Cane_corso
97
chow, chow chow
Chow_chow
98
Labrador retriever
Giant_schnauzer
99
kelpie
Australian_cattle_dog
100
Pembroke, Pembroke Welsh corgi
Cardigan_welsh_corgi
101
Chesapeake Bay retriever
Chinese_shar-pei
102
malamute, malemute, Alaskan malamute
Alaskan_malamute
103
French bulldog
French_bulldog
104
bloodhound, sleuthhound
Bloodhound
105
briard
Briard
106
flat-coated retriever
Boykin_spaniel
107
Norfolk terrier
Norfolk_terrier
108
basenji
Basenji
109
basenji
Norwegian_lundehund
110
Chesapeake Bay retriever
Chesapeake_bay_retriever
111
Bouvier des Flandres, Bouviers des Flandres
Glen_of_imaal_terrier
112
Doberman, Doberman pinscher
Dachshund
113
Boston bull, Boston terrier
Boston_terrier
114
Australian terrier
Silky_terrier
115
Tibetan terrier, chrysanthemum dog
Lowchen
116
Bedlington terrier
Bedlington_terrier
117
Ibizan hound, Ibizan Podenco
Ibizan_hound
118
English setter
English_setter
119
black-and-tan coonhound
Black_and_tan_coonhound
120
Japanese spaniel
Japanese_chin
121
boxer
Boxer
122
Rhodesian ridgeback
Dogue_de_bordeaux
123
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
124
Norwegian elkhound, elkhound
Norwegian_elkhound
125
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
126
Chihuahua
Chihuahua
127
dalmatian, coach dog, carriage dog
Dalmatian
128
EntleBucher
Entlebucher_mountain_dog
129
Maltese dog, Maltese terrier, Maltese
Havanese
130
whippet
Greyhound
131
giant schnauzer
Giant_schnauzer
132
basset, basset hound
Basset_hound
133
Pembroke, Pembroke Welsh corgi
Icelandic_sheepdog
134
Chesapeake Bay retriever
Chesapeake_bay_retriever
135
Italian greyhound
Italian_greyhound
136
Airedale, Airedale terrier
Airedale_terrier
137
malinois
Belgian_malinois
138
Welsh springer spaniel
Irish_red_and_white_setter
139
Kerry blue terrier
Portuguese_water_dog
140
Airedale, Airedale terrier
Airedale_terrier
141
Bedlington terrier
Bedlington_terrier
142
cairn, cairn terrier
Cairn_terrier
143
golden retriever
Golden_retriever
144
kelpie
Beauceron
145
Great Dane
Bull_terrier
146
white wolf, Arctic wolf, Canis lupus tundrarum
Canaan_dog
147
bull mastiff
Chinese_shar-pei
148
Irish terrier
Irish_terrier
149
Great Dane
Pointer
150
Irish wolfhound
Irish_wolfhound
151
bull mastiff
Bullmastiff
152
Lhasa, Lhasa apso
Lhasa_apso
153
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
154
cocker spaniel, English cocker spaniel, cocker
English_cocker_spaniel
155
Appenzeller
Greater_swiss_mountain_dog
156
borzoi, Russian wolfhound
Borzoi
157
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
158
curly-coated retriever
Curly-coated_retriever
159
Old English sheepdog, bobtail
Old_english_sheepdog
160
Kerry blue terrier
Kerry_blue_terrier
161
boxer
Bulldog
162
Siberian husky
Akita
163
chow, chow chow
Chow_chow
164
Chesapeake Bay retriever
Chesapeake_bay_retriever
165
Lakeland terrier
Lakeland_terrier
166
komondor
Komondor
167
Cardigan, Cardigan Welsh corgi
Cardigan_welsh_corgi
168
Sussex spaniel
American_water_spaniel
169
bull mastiff
Bullmastiff
170
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
171
cocker spaniel, English cocker spaniel, cocker
Cocker_spaniel
172
Gordon setter
English_toy_spaniel
173
giant schnauzer
Black_russian_terrier
174
English springer, English springer spaniel
English_springer_spaniel
175
Labrador retriever
Canaan_dog
176
chow, chow chow
Chow_chow
177
bloodhound, sleuthhound
Bloodhound
178
Australian terrier
Silky_terrier
179
briard
Briard
180
Norwegian elkhound, elkhound
Norwegian_elkhound
181
Ibizan hound, Ibizan Podenco
Canaan_dog
182
Norwegian elkhound, elkhound
Norwegian_elkhound
183
Bouvier des Flandres, Bouviers des Flandres
Glen_of_imaal_terrier
184
Norwich terrier
Yorkshire_terrier
185
giant schnauzer
German_wirehaired_pointer
186
briard
Briard
187
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
188
flat-coated retriever
Flat-coated_retriever
189
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
190
bull mastiff
Neapolitan_mastiff
191
bull mastiff
Bulldog
192
basset, basset hound
Basset_hound
193
Great Pyrenees
Great_pyrenees
194
flat-coated retriever
Flat-coated_retriever
195
Chesapeake Bay retriever
Chinese_shar-pei
196
Brittany spaniel
Brittany
197
Ibizan hound, Ibizan Podenco
Pharaoh_hound
198
malinois
Belgian_malinois
199
Irish terrier
Irish_terrier
In [14]:
training_set = test_images[:200]
import numpy as np
i = 0
answer = []
k = 0
for face in training_set:
    answer = prediction_labels(face)
    
    
    for j in test_labels[i]:
        k = k+1
        if j == 1:
            break;
    print(i)
    print(answer)
    print(dog_names[k-1])
    k=0
    i= i+1
0
dalmatian, coach dog, carriage dog
Dalmatian
1
Doberman, Doberman pinscher
Doberman_pinscher
2
papillon
Papillon
3
Bedlington terrier
Bedlington_terrier
4
flat-coated retriever
Flat-coated_retriever
5
Scotch terrier, Scottish terrier, Scottie
Belgian_sheepdog
6
Ibizan hound, Ibizan Podenco
Canaan_dog
7
clumber, clumber spaniel
Clumber_spaniel
8
Kerry blue terrier
Lakeland_terrier
9
chow, chow chow
Chow_chow
10
Afghan hound, Afghan
Afghan_hound
11
Bedlington terrier
Bedlington_terrier
12
West Highland white terrier
Glen_of_imaal_terrier
13
Yorkshire terrier
Yorkshire_terrier
14
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
15
Staffordshire bullterrier, Staffordshire bull terrier
Basenji
16
Pomeranian
Pomeranian
17
Boston bull, Boston terrier
Boston_terrier
18
Japanese spaniel
Japanese_chin
19
Norwich terrier
Cairn_terrier
20
Leonberg
Leonberger
21
French bulldog
French_bulldog
22
otterhound, otter hound
Dachshund
23
kuvasz
Kuvasz
24
briard
Briard
25
standard poodle
Portuguese_water_dog
26
Bedlington terrier
Bedlington_terrier
27
Bedlington terrier
Bedlington_terrier
28
keeshond
Keeshond
29
Old English sheepdog, bobtail
Old_english_sheepdog
30
Eskimo dog, husky
Alaskan_malamute
31
Norwegian elkhound, elkhound
Norwegian_elkhound
32
Border collie
Border_collie
33
Bernese mountain dog
Bernese_mountain_dog
34
Newfoundland, Newfoundland dog
Newfoundland
35
Greater Swiss Mountain dog
Greater_swiss_mountain_dog
36
flat-coated retriever
Boykin_spaniel
37
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
Bull_terrier
38
dingo, warrigal, warragal, Canis dingo
Akita
39
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
40
Doberman, Doberman pinscher
Greyhound
41
Welsh springer spaniel
Welsh_springer_spaniel
42
cairn, cairn terrier
Cairn_terrier
43
bloodhound, sleuthhound
Bloodhound
44
cocker spaniel, English cocker spaniel, cocker
English_cocker_spaniel
45
Afghan hound, Afghan
Afghan_hound
46
Maltese dog, Maltese terrier, Maltese
Maltese
47
Italian greyhound
Italian_greyhound
48
Irish water spaniel
Irish_water_spaniel
49
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
50
Bouvier des Flandres, Bouviers des Flandres
Bouvier_des_flandres
51
basenji
Finnish_spitz
52
giant schnauzer
Bouvier_des_flandres
53
basenji
Basenji
54
flat-coated retriever
Boykin_spaniel
55
Old English sheepdog, bobtail
Petit_basset_griffon_vendeen
56
Doberman, Doberman pinscher
Manchester_terrier
57
miniature schnauzer
Miniature_schnauzer
58
Border terrier
Border_terrier
59
Airedale, Airedale terrier
Lakeland_terrier
60
dingo, warrigal, warragal, Canis dingo
Australian_cattle_dog
61
pug, pug-dog
Mastiff
62
boxer
Boxer
63
Labrador retriever
Labrador_retriever
64
Tibetan terrier, chrysanthemum dog
Lowchen
65
bluetick
Bluetick_coonhound
66
Yorkshire terrier
Yorkshire_terrier
67
Weimaraner
Pointer
68
Great Dane
Canaan_dog
69
Brabancon griffon
Brussels_griffon
70
Irish water spaniel
Irish_water_spaniel
71
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
72
Maltese dog, Maltese terrier, Maltese
Maltese
73
Doberman, Doberman pinscher
Doberman_pinscher
74
Norwegian elkhound, elkhound
German_shepherd_dog
75
Gordon setter
English_cocker_spaniel
76
Border terrier
Border_terrier
77
standard poodle
Poodle
78
Brabancon griffon
Brussels_griffon
79
Labrador retriever
Flat-coated_retriever
80
borzoi, Russian wolfhound
Smooth_fox_terrier
81
bull mastiff
Mastiff
82
French bulldog
Bulldog
83
Dandie Dinmont, Dandie Dinmont terrier
Havanese
84
Kerry blue terrier
Kerry_blue_terrier
85
Irish terrier
Irish_terrier
86
Greater Swiss Mountain dog
Entlebucher_mountain_dog
87
Blenheim spaniel
Cavalier_king_charles_spaniel
88
Pomeranian
American_eskimo_dog
89
Brittany spaniel
Brittany
90
komondor
Komondor
91
basset, basset hound
Basset_hound
92
otterhound, otter hound
Wirehaired_pointing_griffon
93
miniature pinscher
German_pinscher
94
groenendael
Belgian_tervuren
95
malinois
Belgian_malinois
96
Tibetan mastiff
Tibetan_mastiff
97
Doberman, Doberman pinscher
German_pinscher
98
Chesapeake Bay retriever
Boykin_spaniel
99
keeshond
Norwegian_elkhound
100
Staffordshire bullterrier, Staffordshire bull terrier
American_staffordshire_terrier
101
kelpie
Australian_cattle_dog
102
Doberman, Doberman pinscher
Doberman_pinscher
103
Maltese dog, Maltese terrier, Maltese
Bichon_frise
104
German short-haired pointer
German_shorthaired_pointer
105
papillon
Papillon
106
clumber, clumber spaniel
Clumber_spaniel
107
dalmatian, coach dog, carriage dog
Dalmatian
108
Pomeranian
Icelandic_sheepdog
109
Irish terrier
Irish_terrier
110
Tibetan terrier, chrysanthemum dog
Lowchen
111
English springer, English springer spaniel
English_cocker_spaniel
112
bull mastiff
Cane_corso
113
borzoi, Russian wolfhound
Australian_shepherd
114
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
115
kelpie
Australian_cattle_dog
116
wire-haired fox terrier
Petit_basset_griffon_vendeen
117
Ibizan hound, Ibizan Podenco
Ibizan_hound
118
bluetick
Bluetick_coonhound
119
Staffordshire bullterrier, Staffordshire bull terrier
Cane_corso
120
redbone
Golden_retriever
121
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
122
Mexican hairless
Xoloitzcuintli
123
Tibetan terrier, chrysanthemum dog
Affenpinscher
124
Brittany spaniel
Brittany
125
Pembroke, Pembroke Welsh corgi
Norwegian_lundehund
126
whippet
Greyhound
127
kuvasz
Kuvasz
128
Great Dane
Cane_corso
129
groenendael
Belgian_sheepdog
130
Chihuahua
Chihuahua
131
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
132
bloodhound, sleuthhound
Bloodhound
133
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
134
miniature pinscher
German_pinscher
135
collie
Collie
136
Great Dane
Belgian_malinois
137
black-and-tan coonhound
Dachshund
138
Shetland sheepdog, Shetland sheep dog, Shetland
Collie
139
bull mastiff
Chinese_shar-pei
140
Greater Swiss Mountain dog
Entlebucher_mountain_dog
141
Irish wolfhound
Glen_of_imaal_terrier
142
Chihuahua
Chihuahua
143
miniature pinscher
Dachshund
144
Siberian husky
Alaskan_malamute
145
Airedale, Airedale terrier
Airedale_terrier
146
chow, chow chow
Finnish_spitz
147
Great Dane
Cane_corso
148
standard poodle
Irish_water_spaniel
149
Walker hound, Walker foxhound
American_foxhound
150
Irish water spaniel
Portuguese_water_dog
151
Maltese dog, Maltese terrier, Maltese
Maltese
152
beagle
Beagle
153
Ibizan hound, Ibizan Podenco
Ibizan_hound
154
keeshond
Keeshond
155
Afghan hound, Afghan
Afghan_hound
156
flat-coated retriever
Flat-coated_retriever
157
Saint Bernard, St Bernard
Anatolian_shepherd_dog
158
Irish setter, red setter
Irish_setter
159
Old English sheepdog, bobtail
Old_english_sheepdog
160
Leonberg
Leonberger
161
Border collie
Border_collie
162
papillon
Pomeranian
163
Irish water spaniel
Irish_water_spaniel
164
giant schnauzer
Boykin_spaniel
165
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
166
German short-haired pointer
Wirehaired_pointing_griffon
167
Leonberg
Leonberger
168
Italian greyhound
Parson_russell_terrier
169
Japanese spaniel
Japanese_chin
170
German short-haired pointer
German_shorthaired_pointer
171
Chesapeake Bay retriever
Plott
172
Cardigan, Cardigan Welsh corgi
Pembroke_welsh_corgi
173
bull mastiff
Dogue_de_bordeaux
174
briard
Briard
175
English springer, English springer spaniel
German_wirehaired_pointer
176
Ibizan hound, Ibizan Podenco
Pharaoh_hound
177
briard
Briard
178
Chihuahua
Nova_scotia_duck_tolling_retriever
179
Chesapeake Bay retriever
English_springer_spaniel
180
Gordon setter
Cavalier_king_charles_spaniel
181
Maltese dog, Maltese terrier, Maltese
Maltese
182
Labrador retriever
Anatolian_shepherd_dog
183
Walker hound, Walker foxhound
American_foxhound
184
Chesapeake Bay retriever
Chinese_shar-pei
185
English springer, English springer spaniel
English_springer_spaniel
186
Blenheim spaniel
Cavalier_king_charles_spaniel
187
beagle
Beagle
188
malamute, malemute, Alaskan malamute
Alaskan_malamute
189
Boston bull, Boston terrier
Boston_terrier
190
English foxhound
American_foxhound
191
Boston bull, Boston terrier
Boston_terrier
192
Tibetan mastiff
Chow_chow
193
standard poodle
Poodle
194
borzoi, Russian wolfhound
Borzoi
195
cocker spaniel, English cocker spaniel, cocker
Cavalier_king_charles_spaniel
196
cocker spaniel, English cocker spaniel, cocker
English_cocker_spaniel
197
kelpie
Australian_cattle_dog
198
Irish water spaniel
American_water_spaniel
199
Leonberg
Leonberger
3) INCEPTION
In [18]:
from keras.applications.inception_v3 import InceptionV3
from keras.applications.inception_v3 import preprocess_input, decode_predictions

model = InceptionV3(weights='imagenet')

def prediction_labels(img_path):
    img = preprocess_input(tensor_4d(img_path))
    output = model.predict(img)
    #print(output
    return dog_breed[np.argmax(output)]
In [15]:
training_set = train_images[:200]
import numpy as np
i = 0
answer = []
k = 0
for face in training_set:
    answer = prediction_labels(face)
    
    
    for j in train_labels[i]:
        k = k+1
        if j == 1:
            break;
    print(i)
    print(answer)
    print(dog_names[k-1])
    k=0
    i= i+1
   
0
kuvasz
Kuvasz
1
dalmatian, coach dog, carriage dog
Dalmatian
2
Irish water spaniel
Irish_water_spaniel
3
Staffordshire bullterrier, Staffordshire bull terrier
American_staffordshire_terrier
4
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
5
Welsh springer spaniel
English_springer_spaniel
6
collie
Collie
7
wire-haired fox terrier
Petit_basset_griffon_vendeen
8
Irish water spaniel
American_water_spaniel
9
Italian greyhound
Greyhound
10
Border collie
Australian_shepherd
11
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
12
beagle
Basset_hound
13
cocker spaniel, English cocker spaniel, cocker
Cocker_spaniel
14
Lhasa, Lhasa apso
Lhasa_apso
15
Sussex spaniel
American_water_spaniel
16
flat-coated retriever
Dachshund
17
Maltese dog, Maltese terrier, Maltese
Havanese
18
Pekinese, Pekingese, Peke
Pekingese
19
chow, chow chow
Chow_chow
20
Lakeland terrier
Lakeland_terrier
21
dalmatian, coach dog, carriage dog
Dalmatian
22
Labrador retriever
Labrador_retriever
23
Newfoundland, Newfoundland dog
Newfoundland
24
Pekinese, Pekingese, Peke
Pekingese
25
Irish terrier
Irish_terrier
26
Pembroke, Pembroke Welsh corgi
Finnish_spitz
27
German shepherd, German shepherd dog, German police dog, alsatian
Alaskan_malamute
28
Bernese mountain dog
Bernese_mountain_dog
29
Newfoundland, Newfoundland dog
Newfoundland
30
Ibizan hound, Ibizan Podenco
Bull_terrier
31
whippet
Italian_greyhound
32
Lakeland terrier
Lakeland_terrier
33
Great Dane
Australian_shepherd
34
Irish setter, red setter
Irish_setter
35
miniature pinscher
Manchester_terrier
36
Old English sheepdog, bobtail
Petit_basset_griffon_vendeen
37
dalmatian, coach dog, carriage dog
Dalmatian
38
basset, basset hound
Basset_hound
39
English setter
English_setter
40
Afghan hound, Afghan
Black_russian_terrier
41
Rottweiler
Beauceron
42
Tibetan terrier, chrysanthemum dog
Bearded_collie
43
Staffordshire bullterrier, Staffordshire bull terrier
Plott
44
Chesapeake Bay retriever
Chesapeake_bay_retriever
45
golden retriever
Golden_retriever
46
basenji
Bull_terrier
47
Shetland sheepdog, Shetland sheep dog, Shetland
Collie
48
bloodhound, sleuthhound
Bloodhound
49
Pembroke, Pembroke Welsh corgi
Norwegian_lundehund
50
Tibetan terrier, chrysanthemum dog
Havanese
51
Cardigan, Cardigan Welsh corgi
Cardigan_welsh_corgi
52
pug, pug-dog
Bulldog
53
Brittany spaniel
Irish_red_and_white_setter
54
Samoyed, Samoyede
American_eskimo_dog
55
Bedlington terrier
Bedlington_terrier
56
malinois
Anatolian_shepherd_dog
57
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
58
Ibizan hound, Ibizan Podenco
Pharaoh_hound
59
Blenheim spaniel
Cavalier_king_charles_spaniel
60
Tibetan terrier, chrysanthemum dog
Bearded_collie
61
English foxhound
Brittany
62
kelpie
Australian_cattle_dog
63
Maltese dog, Maltese terrier, Maltese
Bichon_frise
64
Great Dane
Great_dane
65
Tibetan terrier, chrysanthemum dog
Bearded_collie
66
bull mastiff
Neapolitan_mastiff
67
Great Pyrenees
Great_pyrenees
68
Gordon setter
English_toy_spaniel
69
Italian greyhound
Italian_greyhound
70
Mexican hairless
Xoloitzcuintli
71
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
72
Australian terrier
Australian_terrier
73
curly-coated retriever
Curly-coated_retriever
74
Kerry blue terrier
Kerry_blue_terrier
75
Irish water spaniel
Irish_water_spaniel
76
bull mastiff
Mastiff
77
otterhound, otter hound
Otterhound
78
basenji
Icelandic_sheepdog
79
Newfoundland, Newfoundland dog
Newfoundland
80
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
81
Irish terrier
Irish_terrier
82
Saluki, gazelle hound
Greyhound
83
Great Dane
Mastiff
84
kuvasz
Kuvasz
85
Boston bull, Boston terrier
Boston_terrier
86
whippet
Italian_greyhound
87
Afghan hound, Afghan
Borzoi
88
German short-haired pointer
Pointer
89
Irish setter, red setter
Dachshund
90
dingo, warrigal, warragal, Canis dingo
Finnish_spitz
91
Gordon setter
Gordon_setter
92
boxer
Boxer
93
Afghan hound, Afghan
Afghan_hound
94
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
95
kuvasz
Kuvasz
96
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
Cane_corso
97
chow, chow chow
Chow_chow
98
Labrador retriever
Giant_schnauzer
99
kelpie
Australian_cattle_dog
100
Pembroke, Pembroke Welsh corgi
Cardigan_welsh_corgi
101
Chesapeake Bay retriever
Chinese_shar-pei
102
malamute, malemute, Alaskan malamute
Alaskan_malamute
103
French bulldog
French_bulldog
104
bloodhound, sleuthhound
Bloodhound
105
briard
Briard
106
flat-coated retriever
Boykin_spaniel
107
Norfolk terrier
Norfolk_terrier
108
basenji
Basenji
109
basenji
Norwegian_lundehund
110
Chesapeake Bay retriever
Chesapeake_bay_retriever
111
Bouvier des Flandres, Bouviers des Flandres
Glen_of_imaal_terrier
112
Doberman, Doberman pinscher
Dachshund
113
Boston bull, Boston terrier
Boston_terrier
114
Australian terrier
Silky_terrier
115
Tibetan terrier, chrysanthemum dog
Lowchen
116
Bedlington terrier
Bedlington_terrier
117
Ibizan hound, Ibizan Podenco
Ibizan_hound
118
English setter
English_setter
119
black-and-tan coonhound
Black_and_tan_coonhound
120
Japanese spaniel
Japanese_chin
121
boxer
Boxer
122
Rhodesian ridgeback
Dogue_de_bordeaux
123
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
124
Norwegian elkhound, elkhound
Norwegian_elkhound
125
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
126
Chihuahua
Chihuahua
127
dalmatian, coach dog, carriage dog
Dalmatian
128
EntleBucher
Entlebucher_mountain_dog
129
Maltese dog, Maltese terrier, Maltese
Havanese
130
whippet
Greyhound
131
giant schnauzer
Giant_schnauzer
132
basset, basset hound
Basset_hound
133
Pembroke, Pembroke Welsh corgi
Icelandic_sheepdog
134
Chesapeake Bay retriever
Chesapeake_bay_retriever
135
Italian greyhound
Italian_greyhound
136
Airedale, Airedale terrier
Airedale_terrier
137
malinois
Belgian_malinois
138
Welsh springer spaniel
Irish_red_and_white_setter
139
Kerry blue terrier
Portuguese_water_dog
140
Airedale, Airedale terrier
Airedale_terrier
141
Bedlington terrier
Bedlington_terrier
142
cairn, cairn terrier
Cairn_terrier
143
golden retriever
Golden_retriever
144
kelpie
Beauceron
145
Great Dane
Bull_terrier
146
white wolf, Arctic wolf, Canis lupus tundrarum
Canaan_dog
147
bull mastiff
Chinese_shar-pei
148
Irish terrier
Irish_terrier
149
Great Dane
Pointer
150
Irish wolfhound
Irish_wolfhound
151
bull mastiff
Bullmastiff
152
Lhasa, Lhasa apso
Lhasa_apso
153
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
154
cocker spaniel, English cocker spaniel, cocker
English_cocker_spaniel
155
Appenzeller
Greater_swiss_mountain_dog
156
borzoi, Russian wolfhound
Borzoi
157
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
158
curly-coated retriever
Curly-coated_retriever
159
Old English sheepdog, bobtail
Old_english_sheepdog
160
Kerry blue terrier
Kerry_blue_terrier
161
boxer
Bulldog
162
Siberian husky
Akita
163
chow, chow chow
Chow_chow
164
Chesapeake Bay retriever
Chesapeake_bay_retriever
165
Lakeland terrier
Lakeland_terrier
166
komondor
Komondor
167
Cardigan, Cardigan Welsh corgi
Cardigan_welsh_corgi
168
Sussex spaniel
American_water_spaniel
169
bull mastiff
Bullmastiff
170
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
171
cocker spaniel, English cocker spaniel, cocker
Cocker_spaniel
172
Gordon setter
English_toy_spaniel
173
giant schnauzer
Black_russian_terrier
174
English springer, English springer spaniel
English_springer_spaniel
175
Labrador retriever
Canaan_dog
176
chow, chow chow
Chow_chow
177
bloodhound, sleuthhound
Bloodhound
178
Australian terrier
Silky_terrier
179
briard
Briard
180
Norwegian elkhound, elkhound
Norwegian_elkhound
181
Ibizan hound, Ibizan Podenco
Canaan_dog
182
Norwegian elkhound, elkhound
Norwegian_elkhound
183
Bouvier des Flandres, Bouviers des Flandres
Glen_of_imaal_terrier
184
Norwich terrier
Yorkshire_terrier
185
giant schnauzer
German_wirehaired_pointer
186
briard
Briard
187
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
188
flat-coated retriever
Flat-coated_retriever
189
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
190
bull mastiff
Neapolitan_mastiff
191
bull mastiff
Bulldog
192
basset, basset hound
Basset_hound
193
Great Pyrenees
Great_pyrenees
194
flat-coated retriever
Flat-coated_retriever
195
Chesapeake Bay retriever
Chinese_shar-pei
196
Brittany spaniel
Brittany
197
Ibizan hound, Ibizan Podenco
Pharaoh_hound
198
malinois
Belgian_malinois
199
Irish terrier
Irish_terrier
In [17]:
training_set = test_images[:200]
import numpy as np
i = 0
number = 0
answer = []
k = 0
for face in training_set:
    answer = prediction_labels(face)
   
    
    for j in test_labels[i]:
        k = k+1
        if j == 1:
            break;
    print(i)
    print(answer)
    if dog_names[k-1] in answer:
        number = number +1
    print(dog_names[k-1])
    k=0
    i= i+1
print(number)
0
dalmatian, coach dog, carriage dog
Dalmatian
1
Doberman, Doberman pinscher
Doberman_pinscher
2
papillon
Papillon
3
Bedlington terrier
Bedlington_terrier
4
flat-coated retriever
Flat-coated_retriever
5
Scotch terrier, Scottish terrier, Scottie
Belgian_sheepdog
6
Ibizan hound, Ibizan Podenco
Canaan_dog
7
clumber, clumber spaniel
Clumber_spaniel
8
Kerry blue terrier
Lakeland_terrier
9
chow, chow chow
Chow_chow
10
Afghan hound, Afghan
Afghan_hound
11
Bedlington terrier
Bedlington_terrier
12
West Highland white terrier
Glen_of_imaal_terrier
13
Yorkshire terrier
Yorkshire_terrier
14
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
15
Staffordshire bullterrier, Staffordshire bull terrier
Basenji
16
Pomeranian
Pomeranian
17
Boston bull, Boston terrier
Boston_terrier
18
Japanese spaniel
Japanese_chin
19
Norwich terrier
Cairn_terrier
20
Leonberg
Leonberger
21
French bulldog
French_bulldog
22
otterhound, otter hound
Dachshund
23
kuvasz
Kuvasz
24
briard
Briard
25
standard poodle
Portuguese_water_dog
26
Bedlington terrier
Bedlington_terrier
27
Bedlington terrier
Bedlington_terrier
28
keeshond
Keeshond
29
Old English sheepdog, bobtail
Old_english_sheepdog
30
Eskimo dog, husky
Alaskan_malamute
31
Norwegian elkhound, elkhound
Norwegian_elkhound
32
Border collie
Border_collie
33
Bernese mountain dog
Bernese_mountain_dog
34
Newfoundland, Newfoundland dog
Newfoundland
35
Greater Swiss Mountain dog
Greater_swiss_mountain_dog
36
flat-coated retriever
Boykin_spaniel
37
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
Bull_terrier
38
dingo, warrigal, warragal, Canis dingo
Akita
39
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
40
Doberman, Doberman pinscher
Greyhound
41
Welsh springer spaniel
Welsh_springer_spaniel
42
cairn, cairn terrier
Cairn_terrier
43
bloodhound, sleuthhound
Bloodhound
44
cocker spaniel, English cocker spaniel, cocker
English_cocker_spaniel
45
Afghan hound, Afghan
Afghan_hound
46
Maltese dog, Maltese terrier, Maltese
Maltese
47
Italian greyhound
Italian_greyhound
48
Irish water spaniel
Irish_water_spaniel
49
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
American_staffordshire_terrier
50
Bouvier des Flandres, Bouviers des Flandres
Bouvier_des_flandres
51
basenji
Finnish_spitz
52
giant schnauzer
Bouvier_des_flandres
53
basenji
Basenji
54
flat-coated retriever
Boykin_spaniel
55
Old English sheepdog, bobtail
Petit_basset_griffon_vendeen
56
Doberman, Doberman pinscher
Manchester_terrier
57
miniature schnauzer
Miniature_schnauzer
58
Border terrier
Border_terrier
59
Airedale, Airedale terrier
Lakeland_terrier
60
dingo, warrigal, warragal, Canis dingo
Australian_cattle_dog
61
pug, pug-dog
Mastiff
62
boxer
Boxer
63
Labrador retriever
Labrador_retriever
64
Tibetan terrier, chrysanthemum dog
Lowchen
65
bluetick
Bluetick_coonhound
66
Yorkshire terrier
Yorkshire_terrier
67
Weimaraner
Pointer
68
Great Dane
Canaan_dog
69
Brabancon griffon
Brussels_griffon
70
Irish water spaniel
Irish_water_spaniel
71
Dandie Dinmont, Dandie Dinmont terrier
Dandie_dinmont_terrier
72
Maltese dog, Maltese terrier, Maltese
Maltese
73
Doberman, Doberman pinscher
Doberman_pinscher
74
Norwegian elkhound, elkhound
German_shepherd_dog
75
Gordon setter
English_cocker_spaniel
76
Border terrier
Border_terrier
77
standard poodle
Poodle
78
Brabancon griffon
Brussels_griffon
79
Labrador retriever
Flat-coated_retriever
80
borzoi, Russian wolfhound
Smooth_fox_terrier
81
bull mastiff
Mastiff
82
French bulldog
Bulldog
83
Dandie Dinmont, Dandie Dinmont terrier
Havanese
84
Kerry blue terrier
Kerry_blue_terrier
85
Irish terrier
Irish_terrier
86
Greater Swiss Mountain dog
Entlebucher_mountain_dog
87
Blenheim spaniel
Cavalier_king_charles_spaniel
88
Pomeranian
American_eskimo_dog
89
Brittany spaniel
Brittany
90
komondor
Komondor
91
basset, basset hound
Basset_hound
92
otterhound, otter hound
Wirehaired_pointing_griffon
93
miniature pinscher
German_pinscher
94
groenendael
Belgian_tervuren
95
malinois
Belgian_malinois
96
Tibetan mastiff
Tibetan_mastiff
97
Doberman, Doberman pinscher
German_pinscher
98
Chesapeake Bay retriever
Boykin_spaniel
99
keeshond
Norwegian_elkhound
100
Staffordshire bullterrier, Staffordshire bull terrier
American_staffordshire_terrier
101
kelpie
Australian_cattle_dog
102
Doberman, Doberman pinscher
Doberman_pinscher
103
Maltese dog, Maltese terrier, Maltese
Bichon_frise
104
German short-haired pointer
German_shorthaired_pointer
105
papillon
Papillon
106
clumber, clumber spaniel
Clumber_spaniel
107
dalmatian, coach dog, carriage dog
Dalmatian
108
Pomeranian
Icelandic_sheepdog
109
Irish terrier
Irish_terrier
110
Tibetan terrier, chrysanthemum dog
Lowchen
111
English springer, English springer spaniel
English_cocker_spaniel
112
bull mastiff
Cane_corso
113
borzoi, Russian wolfhound
Australian_shepherd
114
German shepherd, German shepherd dog, German police dog, alsatian
German_shepherd_dog
115
kelpie
Australian_cattle_dog
116
wire-haired fox terrier
Petit_basset_griffon_vendeen
117
Ibizan hound, Ibizan Podenco
Ibizan_hound
118
bluetick
Bluetick_coonhound
119
Staffordshire bullterrier, Staffordshire bull terrier
Cane_corso
120
redbone
Golden_retriever
121
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
122
Mexican hairless
Xoloitzcuintli
123
Tibetan terrier, chrysanthemum dog
Affenpinscher
124
Brittany spaniel
Brittany
125
Pembroke, Pembroke Welsh corgi
Norwegian_lundehund
126
whippet
Greyhound
127
kuvasz
Kuvasz
128
Great Dane
Cane_corso
129
groenendael
Belgian_sheepdog
130
Chihuahua
Chihuahua
131
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
132
bloodhound, sleuthhound
Bloodhound
133
Pembroke, Pembroke Welsh corgi
Pembroke_welsh_corgi
134
miniature pinscher
German_pinscher
135
collie
Collie
136
Great Dane
Belgian_malinois
137
black-and-tan coonhound
Dachshund
138
Shetland sheepdog, Shetland sheep dog, Shetland
Collie
139
bull mastiff
Chinese_shar-pei
140
Greater Swiss Mountain dog
Entlebucher_mountain_dog
141
Irish wolfhound
Glen_of_imaal_terrier
142
Chihuahua
Chihuahua
143
miniature pinscher
Dachshund
144
Siberian husky
Alaskan_malamute
145
Airedale, Airedale terrier
Airedale_terrier
146
chow, chow chow
Finnish_spitz
147
Great Dane
Cane_corso
148
standard poodle
Irish_water_spaniel
149
Walker hound, Walker foxhound
American_foxhound
150
Irish water spaniel
Portuguese_water_dog
151
Maltese dog, Maltese terrier, Maltese
Maltese
152
beagle
Beagle
153
Ibizan hound, Ibizan Podenco
Ibizan_hound
154
keeshond
Keeshond
155
Afghan hound, Afghan
Afghan_hound
156
flat-coated retriever
Flat-coated_retriever
157
Saint Bernard, St Bernard
Anatolian_shepherd_dog
158
Irish setter, red setter
Irish_setter
159
Old English sheepdog, bobtail
Old_english_sheepdog
160
Leonberg
Leonberger
161
Border collie
Border_collie
162
papillon
Pomeranian
163
Irish water spaniel
Irish_water_spaniel
164
giant schnauzer
Boykin_spaniel
165
affenpinscher, monkey pinscher, monkey dog
Affenpinscher
166
German short-haired pointer
Wirehaired_pointing_griffon
167
Leonberg
Leonberger
168
Italian greyhound
Parson_russell_terrier
169
Japanese spaniel
Japanese_chin
170
German short-haired pointer
German_shorthaired_pointer
171
Chesapeake Bay retriever
Plott
172
Cardigan, Cardigan Welsh corgi
Pembroke_welsh_corgi
173
bull mastiff
Dogue_de_bordeaux
174
briard
Briard
175
English springer, English springer spaniel
German_wirehaired_pointer
176
Ibizan hound, Ibizan Podenco
Pharaoh_hound
177
briard
Briard
178
Chihuahua
Nova_scotia_duck_tolling_retriever
179
Chesapeake Bay retriever
English_springer_spaniel
180
Gordon setter
Cavalier_king_charles_spaniel
181
Maltese dog, Maltese terrier, Maltese
Maltese
182
Labrador retriever
Anatolian_shepherd_dog
183
Walker hound, Walker foxhound
American_foxhound
184
Chesapeake Bay retriever
Chinese_shar-pei
185
English springer, English springer spaniel
English_springer_spaniel
186
Blenheim spaniel
Cavalier_king_charles_spaniel
187
beagle
Beagle
188
malamute, malemute, Alaskan malamute
Alaskan_malamute
189
Boston bull, Boston terrier
Boston_terrier
190
English foxhound
American_foxhound
191
Boston bull, Boston terrier
Boston_terrier
192
Tibetan mastiff
Chow_chow
193
standard poodle
Poodle
194
borzoi, Russian wolfhound
Borzoi
195
cocker spaniel, English cocker spaniel, cocker
Cavalier_king_charles_spaniel
196
cocker spaniel, English cocker spaniel, cocker
English_cocker_spaniel
197
kelpie
Australian_cattle_dog
198
Irish water spaniel
American_water_spaniel
199
Leonberg
Leonberger
10

EXTRACTING BOTTLENECK FEATURES

1) VGG16

In [20]:
bottleneck_features_vgg16 = np.load('bottleneck_features/DogVGG16Data.npz')
train_VGG16 = bottleneck_features_vgg16['train']
valid_VGG16 = bottleneck_features_vgg16['valid']
test_VGG16 = bottleneck_features_vgg16['test']

USING AS FEATURE EXTRACTOR

The model uses the the pre-trained VGG-16 model as a feature extractor, where the last convolutional output of VGG-16 is fed as input to our model.

In [21]:
from keras.callbacks import ModelCheckpoint  
from keras.layers import Conv2D, MaxPooling2D, GlobalAveragePooling2D
from keras.layers import Dropout, Flatten, Dense
from keras.models import Sequential

VGG16_model = Sequential()
VGG16_model.add(GlobalAveragePooling2D(input_shape=train_VGG16.shape[1:]))
VGG16_model.add(Dropout(0.4))
VGG16_model.add(Dense(500, activation='relu'))
VGG16_model.add(Dropout(0.5))
VGG16_model.add(Dense(133, activation='softmax'))

VGG16_model.summary()
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
global_average_pooling2d_1 ( (None, 512)               0         
_________________________________________________________________
dropout_1 (Dropout)          (None, 512)               0         
_________________________________________________________________
dense_1 (Dense)              (None, 500)               256500    
_________________________________________________________________
dropout_2 (Dropout)          (None, 500)               0         
_________________________________________________________________
dense_2 (Dense)              (None, 133)               66633     
=================================================================
Total params: 323,133
Trainable params: 323,133
Non-trainable params: 0
_________________________________________________________________

COMPILING THE MODEL

In [22]:
VGG16_model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

CHECKPOINT CREATION

In [23]:
Checkpointer = ModelCheckpoint(filepath='saved_models/weights.best.VGG16.hdf5', 
                               verbose=1, save_best_only=True)

VGG16_model.fit(train_VGG16, train_labels, 
          validation_data=(valid_VGG16, valid_labels),
          epochs=20, batch_size=20, callbacks=[Checkpointer], verbose=1)
Train on 6680 samples, validate on 835 samples
Epoch 1/20
6680/6680 [==============================] - 6s 856us/step - loss: 14.5021 - acc: 0.0437 - val_loss: 10.1971 - val_acc: 0.1737

Epoch 00001: val_loss improved from inf to 10.19705, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 2/20
6680/6680 [==============================] - 4s 556us/step - loss: 7.0391 - acc: 0.1031 - val_loss: 3.7627 - val_acc: 0.2707

Epoch 00002: val_loss improved from 10.19705 to 3.76265, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 3/20
6680/6680 [==============================] - 4s 527us/step - loss: 3.9736 - acc: 0.1885 - val_loss: 2.6083 - val_acc: 0.4275

Epoch 00003: val_loss improved from 3.76265 to 2.60830, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 4/20
6680/6680 [==============================] - 4s 525us/step - loss: 3.4292 - acc: 0.2558 - val_loss: 2.0636 - val_acc: 0.5102

Epoch 00004: val_loss improved from 2.60830 to 2.06359, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 5/20
6680/6680 [==============================] - 3s 518us/step - loss: 3.0973 - acc: 0.3124 - val_loss: 1.7864 - val_acc: 0.5234

Epoch 00005: val_loss improved from 2.06359 to 1.78638, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 6/20
6680/6680 [==============================] - 3s 514us/step - loss: 2.9257 - acc: 0.3485 - val_loss: 1.7331 - val_acc: 0.5701

Epoch 00006: val_loss improved from 1.78638 to 1.73307, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 7/20
6680/6680 [==============================] - 3s 518us/step - loss: 2.8693 - acc: 0.3594 - val_loss: 1.5132 - val_acc: 0.6096

Epoch 00007: val_loss improved from 1.73307 to 1.51316, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 8/20
6680/6680 [==============================] - 3s 499us/step - loss: 2.8055 - acc: 0.3657 - val_loss: 1.4358 - val_acc: 0.6120

Epoch 00008: val_loss improved from 1.51316 to 1.43582, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 9/20
6680/6680 [==============================] - 3s 515us/step - loss: 2.7329 - acc: 0.3807 - val_loss: 1.3868 - val_acc: 0.6228

Epoch 00009: val_loss improved from 1.43582 to 1.38677, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 10/20
6680/6680 [==============================] - 4s 530us/step - loss: 2.6989 - acc: 0.4058 - val_loss: 1.3858 - val_acc: 0.6072

Epoch 00010: val_loss improved from 1.38677 to 1.38579, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 11/20
6680/6680 [==============================] - 3s 506us/step - loss: 2.6100 - acc: 0.4244 - val_loss: 1.3597 - val_acc: 0.6144

Epoch 00011: val_loss improved from 1.38579 to 1.35967, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 12/20
6680/6680 [==============================] - 3s 508us/step - loss: 2.6585 - acc: 0.4208 - val_loss: 1.4088 - val_acc: 0.5856

Epoch 00012: val_loss did not improve
Epoch 13/20
6680/6680 [==============================] - 4s 546us/step - loss: 2.5668 - acc: 0.4322 - val_loss: 1.3857 - val_acc: 0.6084

Epoch 00013: val_loss did not improve
Epoch 14/20
6680/6680 [==============================] - 3s 490us/step - loss: 2.5666 - acc: 0.4433 - val_loss: 1.3041 - val_acc: 0.6455

Epoch 00014: val_loss improved from 1.35967 to 1.30415, saving model to saved_models/weights.best.VGG16.hdf5
Epoch 15/20
6680/6680 [==============================] - 3s 512us/step - loss: 2.5888 - acc: 0.4528 - val_loss: 1.4223 - val_acc: 0.6036

Epoch 00015: val_loss did not improve
Epoch 16/20
6680/6680 [==============================] - 4s 594us/step - loss: 2.5754 - acc: 0.4446 - val_loss: 1.3582 - val_acc: 0.6156

Epoch 00016: val_loss did not improve
Epoch 17/20
6680/6680 [==============================] - 3s 519us/step - loss: 2.5772 - acc: 0.4540 - val_loss: 1.3987 - val_acc: 0.6263

Epoch 00017: val_loss did not improve
Epoch 18/20
6680/6680 [==============================] - 3s 498us/step - loss: 2.5992 - acc: 0.4522 - val_loss: 1.4004 - val_acc: 0.6156

Epoch 00018: val_loss did not improve
Epoch 19/20
6680/6680 [==============================] - 3s 501us/step - loss: 2.5604 - acc: 0.4642 - val_loss: 1.3975 - val_acc: 0.6359

Epoch 00019: val_loss did not improve
Epoch 20/20
6680/6680 [==============================] - 3s 495us/step - loss: 2.5981 - acc: 0.4585 - val_loss: 1.2684 - val_acc: 0.6299

Epoch 00020: val_loss improved from 1.30415 to 1.26838, saving model to saved_models/weights.best.VGG16.hdf5
Out[23]:
<keras.callbacks.History at 0x7f7720d3b978>

LOG LOSS:

The value of log losscan be infered from above at last epoch i.e epoch 20 is 2.58854

SAVING WEIGHTS

In [24]:
VGG16_model.load_weights('saved_models/weights.best.VGG16.hdf5')

ACCURACY ON TEST SET

In [25]:
VGG16_predictions = [np.argmax(VGG16_model.predict(np.expand_dims(feature, axis=0))) for feature in test_VGG16]

# report test accuracy
test_accuracy = 100*np.sum(np.array(VGG16_predictions)==np.argmax(test_labels, axis=1))/len(VGG16_predictions)
print('Test accuracy: %.2f%%' % test_accuracy)
Test accuracy: 63.28%

TESTING ON IMAGES NOT SEEN BY THE NETWORK

In [52]:
from extract_bottleneck_features import *

def VGG16_prediction(img_path):
    bottleneck_feature = extract_VGG16(tensor_4d(img_path))
    predicted_vector = VGG16_model.predict(bottleneck_feature)
    return dog_names[np.argmax(predicted_vector)]
In [53]:
def detector(img_path):
    breed = VGG16_prediction(img_path) 
    
    image = cv2.imread(img_path)
    cv_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    plt.imshow(cv_rgb)
    plt.show()
    return breed
In [54]:
test_images_files = np.array(glob("test_images/*"))
print(test_images_files)
['test_images/italian greyhound.jpeg' 'test_images/Lhasa Apso.jpg'
 'test_images/afghan hound.png' 'test_images/Basenji_.jpg'
 'test_images/german pinscher.jpeg' 'test_images/saint bernard.jpg']
In [55]:
for path in test_images_files:
    print("actual label:")
    print(path)
    print("predicted label:")
    result = detector(path)
    print (result)
actual label:
test_images/italian greyhound.jpeg
predicted label:
Parson_russell_terrier
actual label:
test_images/Lhasa Apso.jpg
predicted label:
Dandie_dinmont_terrier
actual label:
test_images/afghan hound.png
predicted label:
Afghan_hound
actual label:
test_images/Basenji_.jpg
predicted label:
Basenji
actual label:
test_images/german pinscher.jpeg
predicted label:
German_pinscher
actual label:
test_images/saint bernard.jpg
predicted label:
Saint_bernard

2) RESNET 50

In [26]:
bottleneck_features_resnet50 = np.load('bottleneck_features/DogResnet50Data.npz')
train_RESNET50 = bottleneck_features_resnet50['train']
valid_RESNET50 = bottleneck_features_resnet50['valid']
test_RESNET50 = bottleneck_features_resnet50['test']

USING AS FEATURE EXTRACTOR

The model uses the the pre-trained RESNET-50 model as a feature extractor, where the last convolutional output of RESNET50 is fed as input to our model.

In [27]:
RESNET50_model = Sequential()
RESNET50_model.add(GlobalAveragePooling2D(input_shape=train_RESNET50.shape[1:]))
RESNET50_model.add(Dropout(0.4))
RESNET50_model.add(Dense(500, activation='relu'))
RESNET50_model.add(Dropout(0.5))
RESNET50_model.add(Dense(133, activation='softmax'))

RESNET50_model.summary()
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
global_average_pooling2d_2 ( (None, 2048)              0         
_________________________________________________________________
dropout_3 (Dropout)          (None, 2048)              0         
_________________________________________________________________
dense_3 (Dense)              (None, 500)               1024500   
_________________________________________________________________
dropout_4 (Dropout)          (None, 500)               0         
_________________________________________________________________
dense_4 (Dense)              (None, 133)               66633     
=================================================================
Total params: 1,091,133
Trainable params: 1,091,133
Non-trainable params: 0
_________________________________________________________________

COMPILING THE MODEL

In [28]:
RESNET50_model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

CHECKPOINT CREATION

In [29]:
Checkpointer = ModelCheckpoint(filepath='saved_models/weights.best.RESNET50.hdf5', 
                               verbose=1, save_best_only=True)

RESNET50_model.fit(train_RESNET50, train_labels, 
          validation_data=(valid_RESNET50, valid_labels),
          epochs=20, batch_size=20, callbacks=[Checkpointer], verbose=1)
Train on 6680 samples, validate on 835 samples
Epoch 1/20
6680/6680 [==============================] - 9s 1ms/step - loss: 3.0891 - acc: 0.3024 - val_loss: 1.0260 - val_acc: 0.7150

Epoch 00001: val_loss improved from inf to 1.02599, saving model to saved_models/weights.best.RESNET50.hdf5
Epoch 2/20
6680/6680 [==============================] - 8s 1ms/step - loss: 1.4580 - acc: 0.5918 - val_loss: 0.7653 - val_acc: 0.7581

Epoch 00002: val_loss improved from 1.02599 to 0.76527, saving model to saved_models/weights.best.RESNET50.hdf5
Epoch 3/20
6680/6680 [==============================] - 8s 1ms/step - loss: 1.1549 - acc: 0.6725 - val_loss: 0.6956 - val_acc: 0.7832

Epoch 00003: val_loss improved from 0.76527 to 0.69560, saving model to saved_models/weights.best.RESNET50.hdf5
Epoch 4/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.9938 - acc: 0.7127 - val_loss: 0.6931 - val_acc: 0.7856

Epoch 00004: val_loss improved from 0.69560 to 0.69311, saving model to saved_models/weights.best.RESNET50.hdf5
Epoch 5/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.9048 - acc: 0.7446 - val_loss: 0.6992 - val_acc: 0.7928

Epoch 00005: val_loss did not improve
Epoch 6/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.8517 - acc: 0.7581 - val_loss: 0.6327 - val_acc: 0.8036

Epoch 00006: val_loss improved from 0.69311 to 0.63271, saving model to saved_models/weights.best.RESNET50.hdf5
Epoch 7/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.8143 - acc: 0.7743 - val_loss: 0.6358 - val_acc: 0.8132

Epoch 00007: val_loss did not improve
Epoch 8/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.7758 - acc: 0.7918 - val_loss: 0.6580 - val_acc: 0.8180

Epoch 00008: val_loss did not improve
Epoch 9/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.7475 - acc: 0.8046 - val_loss: 0.6903 - val_acc: 0.8156

Epoch 00009: val_loss did not improve
Epoch 10/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.6924 - acc: 0.8154 - val_loss: 0.7714 - val_acc: 0.8108

Epoch 00010: val_loss did not improve
Epoch 11/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.6955 - acc: 0.8123 - val_loss: 0.7270 - val_acc: 0.8120

Epoch 00011: val_loss did not improve
Epoch 12/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.6773 - acc: 0.8249 - val_loss: 0.7820 - val_acc: 0.8144

Epoch 00012: val_loss did not improve
Epoch 13/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.6785 - acc: 0.8265 - val_loss: 0.7203 - val_acc: 0.8144

Epoch 00013: val_loss did not improve
Epoch 14/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.6213 - acc: 0.8299 - val_loss: 0.7730 - val_acc: 0.8228

Epoch 00014: val_loss did not improve
Epoch 15/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.6259 - acc: 0.8421 - val_loss: 0.7485 - val_acc: 0.8335

Epoch 00015: val_loss did not improve
Epoch 16/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.6448 - acc: 0.8412 - val_loss: 0.8325 - val_acc: 0.8084

Epoch 00016: val_loss did not improve
Epoch 17/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.6163 - acc: 0.8457 - val_loss: 0.8594 - val_acc: 0.8240

Epoch 00017: val_loss did not improve
Epoch 18/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.5888 - acc: 0.8503 - val_loss: 0.8229 - val_acc: 0.8347

Epoch 00018: val_loss did not improve
Epoch 19/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.5937 - acc: 0.8534 - val_loss: 0.8180 - val_acc: 0.8144

Epoch 00019: val_loss did not improve
Epoch 20/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.5985 - acc: 0.8543 - val_loss: 0.7922 - val_acc: 0.8108

Epoch 00020: val_loss did not improve
Out[29]:
<keras.callbacks.History at 0x7f76f7331470>

LOG LOSS:

The value of log losscan be infered from above at last epoch i.e epoch 20 is 0.5902

SAVING WEIGHTS

In [30]:
RESNET50_model.load_weights('saved_models/weights.best.RESNET50.hdf5')

ACCURACY ON TEST SET

In [31]:
RESNET50_predictions = [np.argmax(RESNET50_model.predict(np.expand_dims(feature, axis=0))) for feature in test_RESNET50]

test_accuracy = 100*np.sum(np.array(RESNET50_predictions)==np.argmax(test_labels, axis=1))/len(RESNET50_predictions)
print('Test accuracy: %.2f%%' % test_accuracy)
Test accuracy: 79.55%

TESTING ON IMAGES NOT SEEN BY THE NETWORK

In [48]:
from extract_bottleneck_features import *

def RESNET50_prediction(img_path):
    bottleneck_feature = extract_Resnet50(tensor_4d(img_path))
    predicted_vector = RESNET50_model.predict(bottleneck_feature)
    return dog_names[np.argmax(predicted_vector)]
In [49]:
def detector(img_path):
    breed = RESNET50_prediction(img_path) 
    
    image = cv2.imread(img_path)
    cv_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    plt.imshow(cv_rgb)
    plt.show()
    return breed
In [50]:
test_images_files = np.array(glob("test_images/*"))
print(test_images_files)
['test_images/italian greyhound.jpeg' 'test_images/Lhasa Apso.jpg'
 'test_images/afghan hound.png' 'test_images/Basenji_.jpg'
 'test_images/german pinscher.jpeg' 'test_images/saint bernard.jpg']
In [51]:
for path in test_images_files:
    print("actual label:")
    print(path)
    print("predicted label:")
    result = detector(path)
    print (result)
actual label:
test_images/italian greyhound.jpeg
predicted label:
Basenji
actual label:
test_images/Lhasa Apso.jpg
predicted label:
Havanese
actual label:
test_images/afghan hound.png
predicted label:
Afghan_hound
actual label:
test_images/Basenji_.jpg
predicted label:
Basenji
actual label:
test_images/german pinscher.jpeg
predicted label:
Doberman_pinscher
actual label:
test_images/saint bernard.jpg
predicted label:
Saint_bernard

3) INCEPTION V3

In [32]:
bottleneck_features_INCEPTION = np.load('bottleneck_features/DogInceptionV3Data.npz')
train_INCEPTION = bottleneck_features_INCEPTION['train']
valid_INCEPTION = bottleneck_features_INCEPTION['valid']
test_INCEPTION = bottleneck_features_INCEPTION['test']

USING AS FEATURE EXTRACTOR

In [33]:
INCEPTION_model = Sequential()
INCEPTION_model.add(GlobalAveragePooling2D(input_shape=train_INCEPTION.shape[1:]))
INCEPTION_model.add(Dropout(0.4))
INCEPTION_model.add(Dense(500, activation='relu'))
INCEPTION_model.add(Dropout(0.5))
INCEPTION_model.add(Dense(133, activation='softmax'))

INCEPTION_model.summary()
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
global_average_pooling2d_3 ( (None, 2048)              0         
_________________________________________________________________
dropout_5 (Dropout)          (None, 2048)              0         
_________________________________________________________________
dense_5 (Dense)              (None, 500)               1024500   
_________________________________________________________________
dropout_6 (Dropout)          (None, 500)               0         
_________________________________________________________________
dense_6 (Dense)              (None, 133)               66633     
=================================================================
Total params: 1,091,133
Trainable params: 1,091,133
Non-trainable params: 0
_________________________________________________________________

COMPILING THE MODEL

In [34]:
INCEPTION_model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

CHECKPOINT CREATION

In [36]:
Checkpointer = ModelCheckpoint(filepath='saved_models/weights.best.INCEPTION.hdf5', 
                               verbose=1, save_best_only=True)

INCEPTION_model.fit(train_INCEPTION, train_labels, 
          validation_data=(valid_INCEPTION, valid_labels),
          epochs=20, batch_size=20, callbacks= [Checkpointer], verbose=1)
Train on 6680 samples, validate on 835 samples
Epoch 1/20
6680/6680 [==============================] - 11s 2ms/step - loss: 2.2433 - acc: 0.4957 - val_loss: 0.7078 - val_acc: 0.7820

Epoch 00001: val_loss improved from inf to 0.70778, saving model to saved_models/weights.best.INCEPTION.hdf5
Epoch 2/20
6680/6680 [==============================] - 9s 1ms/step - loss: 1.0870 - acc: 0.7181 - val_loss: 0.7228 - val_acc: 0.8000

Epoch 00002: val_loss did not improve
Epoch 3/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.9213 - acc: 0.7597 - val_loss: 0.6407 - val_acc: 0.8084

Epoch 00003: val_loss improved from 0.70778 to 0.64067, saving model to saved_models/weights.best.INCEPTION.hdf5
Epoch 4/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.8634 - acc: 0.7841 - val_loss: 0.6409 - val_acc: 0.8347

Epoch 00004: val_loss did not improve
Epoch 5/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.8099 - acc: 0.7924 - val_loss: 0.7216 - val_acc: 0.8216

Epoch 00005: val_loss did not improve
Epoch 6/20
6680/6680 [==============================] - 8s 1ms/step - loss: 0.7712 - acc: 0.8078 - val_loss: 0.6928 - val_acc: 0.8299

Epoch 00006: val_loss did not improve
Epoch 7/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.7498 - acc: 0.8174 - val_loss: 0.7360 - val_acc: 0.8240

Epoch 00007: val_loss did not improve
Epoch 8/20
6680/6680 [==============================] - 10s 1ms/step - loss: 0.7300 - acc: 0.8238 - val_loss: 0.6968 - val_acc: 0.8395

Epoch 00008: val_loss did not improve
Epoch 9/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.7358 - acc: 0.8253 - val_loss: 0.7686 - val_acc: 0.8168

Epoch 00009: val_loss did not improve
Epoch 10/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.7181 - acc: 0.8281 - val_loss: 0.7292 - val_acc: 0.8479

Epoch 00010: val_loss did not improve
Epoch 11/20
6680/6680 [==============================] - 11s 2ms/step - loss: 0.6768 - acc: 0.8419 - val_loss: 0.7475 - val_acc: 0.8527

Epoch 00011: val_loss did not improve
Epoch 12/20
6680/6680 [==============================] - 10s 1ms/step - loss: 0.6817 - acc: 0.8470 - val_loss: 0.7570 - val_acc: 0.8467

Epoch 00012: val_loss did not improve
Epoch 13/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.6551 - acc: 0.8503 - val_loss: 0.7435 - val_acc: 0.8347

Epoch 00013: val_loss did not improve
Epoch 14/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.6381 - acc: 0.8552 - val_loss: 0.9010 - val_acc: 0.8407

Epoch 00014: val_loss did not improve
Epoch 15/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.6698 - acc: 0.8564 - val_loss: 0.7959 - val_acc: 0.8395

Epoch 00015: val_loss did not improve
Epoch 16/20
6680/6680 [==============================] - 10s 2ms/step - loss: 0.6482 - acc: 0.8570 - val_loss: 0.8213 - val_acc: 0.8323

Epoch 00016: val_loss did not improve
Epoch 17/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.6429 - acc: 0.8576 - val_loss: 0.8845 - val_acc: 0.8347

Epoch 00017: val_loss did not improve
Epoch 18/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.6204 - acc: 0.8698 - val_loss: 0.8497 - val_acc: 0.8455

Epoch 00018: val_loss did not improve
Epoch 19/20
6680/6680 [==============================] - 7s 1ms/step - loss: 0.6636 - acc: 0.8579 - val_loss: 0.9078 - val_acc: 0.8443

Epoch 00019: val_loss did not improve
Epoch 20/20
6680/6680 [==============================] - 9s 1ms/step - loss: 0.6361 - acc: 0.8644 - val_loss: 0.8914 - val_acc: 0.8527

Epoch 00020: val_loss did not improve
Out[36]:
<keras.callbacks.History at 0x7f769af53ac8>

SAVING WEIGHTS

In [37]:
INCEPTION_model.load_weights('saved_models/weights.best.INCEPTION.hdf5')

ACCURACY ON TEST SET

In [38]:
INCEPTION_predictions = [np.argmax(INCEPTION_model.predict(np.expand_dims(feature, axis=0))) for feature in test_INCEPTION]

test_accuracy = 100*np.sum(np.array(INCEPTION_predictions)==np.argmax(test_labels, axis=1))/len(INCEPTION_predictions)
print('Test accuracy: %.2f%%' % test_accuracy)
Test accuracy: 78.35%

TESTING ON IMAGES NOT SEEN BY THE NETWORK

In [39]:
from extract_bottleneck_features import *

def INCEPTION_prediction(img_path):
    bottleneck_feature = extract_InceptionV3(tensor_4d(img_path))
    predicted_vector = INCEPTION_model.predict(bottleneck_feature)
    return dog_names[np.argmax(predicted_vector)]
In [40]:
def detector(img_path):
    breed = INCEPTION_prediction(img_path) 
    
    image = cv2.imread(img_path)
    cv_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    plt.imshow(cv_rgb)
    plt.show()
    return breed
    
In [41]:
test_images_files = np.array(glob("test_images/*"))
print(test_images_files)
['test_images/italian greyhound.jpeg' 'test_images/Lhasa Apso.jpg'
 'test_images/afghan hound.png' 'test_images/Basenji_.jpg'
 'test_images/german pinscher.jpeg' 'test_images/saint bernard.jpg']
In [42]:
for path in test_images_files:
    print("actual label:")
    print(path)
    print("predicted label:")
    result = detector(path)
    print (result)
actual label:
test_images/italian greyhound.jpeg
predicted label:
Downloading data from https://github.com/fchollet/deep-learning-models/releases/download/v0.5/inception_v3_weights_tf_dim_ordering_tf_kernels_notop.h5
87916544/87910968 [==============================] - 577s 7us/step
Italian_greyhound
actual label:
test_images/Lhasa Apso.jpg
predicted label:
Lowchen
actual label:
test_images/afghan hound.png
predicted label:
Afghan_hound
actual label:
test_images/Basenji_.jpg
predicted label:
Basenji
actual label:
test_images/german pinscher.jpeg
predicted label:
Doberman_pinscher
actual label:
test_images/saint bernard.jpg
predicted label:
Saint_bernard